package com.scfire.fund

import org.grails.databinding.BindingFormat

import java.util.List;

import com.scfire.security.Member
import com.scfire.project.Project

/**
 * @author XSunny
 * @Modify lhzeng
 * @Modify Date 2016年3月7日 下午4:20:12
 * 基金池
 *
 */
class FundPool implements Comparable  {

	//基金池名称
	String name
	//类型 
	String type
	//封面类型
	String coverPic
	//机构、基金池全名
	String fullName
	//联系人
	String contacter
	//电话
	String tel
	//邮箱
	String email
	//证件列表
	List<String> extraPic = new LinkedList<String>();
	//描述
	String description
	
	/*
	 * totalCount - donateAssigned  可用金额
	 * donateAssigned - donateActual 待配捐金额
	 * 
	 * */
	//实际已经捐赠计数（ * 100）  单位 为分
	int donateActual = 0
	//已经配捐的所有计数（ * 100）  单位 为分
	int donateAssigned = 0
	//基金池配款总额（ * 100）  单位 为分
	int totalCount = 0
	
	//资金池状态
	String status
	
	//创建时间
	@BindingFormat('yyyy-MM-dd HH:mm')
	Date createDate
	
	//更新时间
	@BindingFormat('yyyy-MM-dd HH:mm')
	Date updateDate
	
	//资金池创建人
	static belongsTo = [member:Member]
	//资金池对应很多捐赠记录
	static hasMany = [fdonates:FDonate]

	
    static constraints = {
		name nullable:true;
		type nullable:true;
		coverPic nullable:true;
		fullName nullable:true;
		contacter nullable:true;
		tel nullable:true;
		email nullable:true;
		extraPic nullable:true;		
		description nullable:true;
		
		donateActual nullable:true;
		donateAssigned nullable:true;
		totalCount nullable:true;
		
		status nullable:true;
		createDate nullable:true;
		updateDate nullable:true;
		
		member nullable:true;
		fdonates nullable:true;
		
    }
	
	public int compareTo(Object o) {
		try{
			createDate.compareTo(o?.createDate)
		}catch(Exception e){
			return 1
		}
	}
}
